1. Field of the Invention
The present invention generally relates to circuit timing analysis and more particularly to an improved circuit timing analysis that reduces delay pessimism by using multiple switching windows.
2. Description of the Related Art
During the design phase of electronic signal processing equipment, such as integrated circuit chips, the timing at which different signals pass through various portions of the device must be studied to ensure that the device operates as planned. For example, it is important to analyze the design of the device so as to make sure the flow of signals reach their destination at the proper time. This is necessary to maintain the proper logical operations of the electronic device. In addition, the circuit designer needs to account for (and if possible to avoid) situations where concurrent signal transitions occur on closely spaced electrical wires, because such a situation could delay the transmission of the signals along their respective wires as a result of the unavoidable capacitive coupling between such closely spaced wires.
As the number of logical devices within each integrated circuit chip increases, the number of signal paths which may lead to a specific logical device (xe2x80x9cfan-inxe2x80x9d) and the number of signal paths to which a specific logic of device may pass a signal (xe2x80x9cfan-outxe2x80x9d) increases exponentially. In order to maintain the timing of the various signals within the boundaries prescribed by the circuit designer and to identify situations in which concurrent signal transitions occur on closely spaced wires, conventional timing analysis systems create a logical xe2x80x9cwindowxe2x80x9d in which a signal can be expected to arrive at a given logical device given the fan-in to that device. This window increases as the size and complexity of the fan-in leading to the logical device increases.
Conventional static timing analysis operates on a timing graph representing an abstraction of the logic network within an integrated circuit. The abstraction consists of nodes at which arrival times (ATs), required arrival times (RATs), and/or slews are computed, and directed delay edges on which delays connecting these nodes are computed. Normally both early mode and late mode values are computed, and test edges may be present in the delay graph representing ordering requirements between the early and late mode ATs on the pair of nodes connected by the test edge.
The times (ATs and RATs) computed by static timing analysis are normally made with respect to some specific time within a repeating clock cycle. The early mode AT represents the earliest that the signal at the node can change from the stable value which it held during the previous clock cycle and its value at a node is computed as the minimum over all incoming delay edges of the early mode AT at the source of the delay edge plus the early mode delay associated with that delay edge. The late mode AT represents the latest that the signal at the node can take on its final stable value during the current clock cycle and its value at a node is computed as the maximum over all incoming delay edges of the late mode AT at the source of the delay edge plus the late mode delay associated with that delay edge. Thus the xe2x80x9cwindowxe2x80x9d from the early mode AT to the late mode AT represents the period during which the signal at the node may be switching. Note that if many paths converge on the node, the signal at the node may switch many times during this window, it may switch only once, or not at all.
In analysis of the effects of signal coupling on delay and noise and in the analysis of peak current demand for power bus analysis, it is important to understand the times during which a signal can switch. To determine the effects of coupling on delay of a first wire, one must determine whether a neighboring wire is switching at the same time as a transition of interest is occurring in the first wire. To determine whether coupling to a first wire of the effects of a transition on an adjacent wire could cause an erroneous data to be imposed on the first wire and thus cause the circuit to produce incorrect results, it is important to understand the periods during which the results of erroneous values on the first wire could be saved into memory elements, and then to determine whether or not the adjacent wire may be switching during these periods. The time of occurrence of a transition of interest on a first wire for delay analysis, or the period during which noise coupled onto a first wire could cause erroneous results to be latched into some memory element for noise analysis, are referred to as the victim windows of the first wire for the respective analyses. In determining peak current demand, one must determine all of the signals within a region of interest which could be switching at a particular time, and must therefore determine the possible switching windows for each signal. The smaller these switching windows can be made, the less pessimistic are these analyses. However, conventional analysis only provides a single window for the static timing analysis. This requires that the window be unnecessarily large (e.g., overly pessimistic) to accommodate all possible timing situations. The invention discussed in detail below reduces the size of the window by using multiple windows. Therefore, the invention is less pessimistic than conventional systems because the smaller windows used with the invention result in a smaller number of possible simultaneous switching situations, thereby allowing more circuit designs to be found acceptable than the conventional systems that are more pessimistic and would reject more circuit designs. In the following description, the arrival, existence, or presence of a signal on a wire or net at a particular time or within a particular time window will be understood to mean the occurrence of a transition on that wire or net at that time or during that time window.
In view of the foregoing and other problems, disadvantages, and drawbacks of the conventional circuit timing analysis the present invention has been devised, and it is an object of the present invention to provide a structure and method for an improved circuit timing analysis.
In order to attain the object(s) suggested above, there is provided, according to one aspect of the invention, a method of determining timing windows in a static timing analysis of an integrated circuit design. The method determines, for at least one node in the integrated circuit design, an initial set of sub-windows and merges the sub-windows of the initial set into a final set of sub-windows. The merging process merges overlapping sub-windows. The invention further determines, for the at least one node, a maximum number of sub-windows. The merging process finds a set of largest intervals between the sub-windows of the initial set, the number of intervals in the set being less than or equal to one less than the maximum number of sub-windows and combines sub-windows separated by intervals not in the set of largest intervals. The method may perform an initial static timing analysis to produce a maximum window for the at least one node such that the maximum number of sub-windows is based on the size of the maximum window. The sub-windows are based on an equal division of the maximum window. The maximum window extends from a beginning of an earliest input signal to the node to an ending of latest input to the node. Each sub-window of the initial set of sub-windows extends an earliest beginning of a first input to the node to a latest ending of the first input. One set of timing windows are signal switching windows and computation of the windows is performed in a direction in which signals travel through the integrated circuit. Another set of timing windows are victim windows and the computation of the windows is performed in a direction opposite to that in which signals travel through the integrated circuit. The invention determines whether an adjacent aggressor net may switch during a victim window of a victim net in a static timing analysis of an integrated circuit design. The invention checks for overlap between the victim window and a switching window of the aggressor net and then translates the victim net to a context of each input of the aggressor net, if the checking step identified an overlap. Next, the invention repeats the checking process for each input and translated victim window and determines that the aggressor net may switch during the victim window only if the checking step found an overlap and at least one of the repeating steps determined that the input could switch during the translated victim window. The repeating step is repeated only for a limited number of levels. Each input is an aggressor sub-window, each relating to one input. The repeating process checks for overlap between each the aggressor sub-window and a related translated victim window. If the checking step identified an overlap, the invention determines an initial set of aggressor sub-windows and merges the aggressor sub-windows of the initial set into a final set of aggressor sub-windows. The repeating process checks for overlap between the translated victim window and each of the final set of aggressor sub-windows. The aggressor window determination is performed in a direction in which signals travel through the integrated circuit. The translated victim window determination is performed in a direction opposite that in which signals travel through the integrated circuit.
The invention provides improved switching windows for nets in a circuit which can be used in delay calculation, noise analysis, power bus analysis, and other applications, and which cover a smaller portion of the machine cycle and are thus less pessimistic than conventional single window analysis in that they identify a smaller cumulative period of time during which a net could be switching. At the same time, the invention provides means to control the runtime and memory required to compute these improved switching windows. These improved switching windows in turn allow less pessimistic analysis of the timing of the circuit, the noise impacts of coupling, and the peak current demand required by the circuit. This allows designers to accept designs which would otherwise be rejected as not meeting requirements, and allows circuit requirements to be met with less overdesign in the form of logic restructuring, wire spacing, increased gate sizes, and other means, hence providing a working circuit at less expense.